<template>
  <div class="dataVisualize-box">
    <div class="card top-box">
      <div class="top-title">{{ companyName }}</div>
      <div class="top-content">
        <el-row :gutter="40">
          <el-col class="mb40" :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
            <div class="item-left sle">
              <span class="left-title">入住中</span>
              <div class="img-box">
                <img src="./images/book-sum.png" alt="" />
              </div>
              <span class="left-number">{{ dashboardData?.elderlyCount || 0 }} 人</span>
            </div>
          </el-col>
          <el-col class="mb40" :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
            <div class="item-center">
              <div class="gitee-traffic traffic-box">
                <div class="traffic-img">
                  <img src="./images/add_person.png" alt="" />
                </div>
                <span class="item-value">{{ dashboardData?.employeeCount || 0 }}人</span>
                <span class="traffic-name sle">员工数</span>
              </div>
              <div class="gitHub-traffic traffic-box">
                <div class="traffic-img">
                  <img src="./images/add_team.png" alt="" />
                </div>
                <span class="item-value">{{ dashboardData?.thisMonthBirthdayElderlyCount || 0 }}人</span>
                <span class="traffic-name sle">本月生日</span>
              </div>
              <div class="today-traffic traffic-box">
                <div class="traffic-img">
                  <img src="./images/today.png" alt="" />
                </div>
                <span class="item-value">0 次</span>
                <span class="traffic-name sle">今日护理记录（建设中，敬请期待）</span>
              </div>
              <div class="yesterday-traffic traffic-box">
                <div class="traffic-img">
                  <img src="./images/book_sum.png" alt="" />
                </div>
                <span class="item-value">0 次</span>
                <span class="traffic-name sle">昨日护理记录（建设中，敬请期待）</span>
              </div>
            </div>
          </el-col>
          <el-col class="mb40" :xs="24" :sm="24" :md="24" :lg="10" :xl="10">
            <div class="item-right">
              <div class="echarts-title">男士 / 女士 入住占比</div>
              <div class="book-echarts">
                <Pie ref="pieRef" :data="dashboardData" />
              </div>
            </div>
          </el-col>
        </el-row>
      </div>
    </div>
    <div class="card bottom-box">
      <div class="bottom-title">护理统计（建设中，敬请期待）</div>
      <div class="bottom-tabs">
        <el-tabs v-model="tabActive" class="demo-tabs">
          <el-tab-pane v-for="item in tab" :key="item.name" :label="item.label" :name="item.name"></el-tab-pane>
        </el-tabs>
      </div>
      <div class="curve-echarts">
        <Curve ref="curveRef" />
      </div>
    </div>
  </div>
</template>

<script setup lang="ts" name="dataVisualize">
import { ref } from "vue";
import Pie from "./components/pie.vue";
import Curve from "./components/curve.vue";
import { useUserStore } from "@/stores/modules/user";
import { getCompanyDashboard } from "@/api/modules/dashboard";
import { onMounted } from "vue";
import { Dashboard } from "@/api/interface";

const dashboardData = ref<Dashboard.ResCompanyDashboard>({} as Dashboard.ResCompanyDashboard);
// 组件挂载完成时调用
onMounted(async () => {
  // 调用获取公司仪表盘数据的接口
  const res = await getCompanyDashboard();
  dashboardData.value = res.data;
  pieRef.value?.acceptParams(res.data);
});

const pieRef = ref<InstanceType<typeof Pie> | null>(null);
const tabActive = ref(1);
const companyName = useUserStore().userInfo.companyName;

const tab = [
  { label: "今日", name: 1 },
  { label: "近七日", name: 2 },
  { label: "近一月", name: 3 },
  { label: "近三月", name: 4 },
  { label: "近半年", name: 5 },
  { label: "近一年", name: 6 }
];
</script>

<style scoped lang="scss">
@import "./index";
</style>
